package com.reminiscence.main;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

import com.reminiscence.utils.Utils;

public class Registrazione extends Activity implements OnClickListener
{
	Button btnAnnulla;
	Button btnRegistrati;
	Boolean canRegister = false;
	Boolean boolPwd = false;
	Boolean boolRPwd = false;
	Boolean boolDate = false;
	
	EditText edtNome;
	EditText edtCognome;
	
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.registrazione);
		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
		
		edtNome = (EditText)findViewById(R.id.edtNome);
		edtCognome = (EditText)findViewById(R.id.edtCognome);
		
		edtNome.setText(MainActivity.utente.nome);
		edtCognome.setText(MainActivity.utente.cognome);
		
		btnAnnulla = (Button)findViewById(R.id.btnAnnulla);
		btnRegistrati = (Button)findViewById(R.id.btnRegistrati);
		
		btnAnnulla.setOnClickListener(this);
		btnRegistrati.setOnClickListener(this);
	}

	@SuppressLint("SimpleDateFormat")
	@Override
	public void onClick(View arg0)
	{
		Button b = (Button)arg0;
		AlertDialog.Builder miaAlert = new AlertDialog.Builder(this);
		
		if (b.getId() == R.id.btnAnnulla)
		{
			Intent i = new Intent(Registrazione.this, MainActivity.class);
			i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
			startActivity(i);
		}
		else
		{
			EditText edtSesso = (EditText)findViewById(R.id.edtSesso);
			EditText edtDataN = (EditText)findViewById(R.id.edtDataN);
			EditText edtLuogoN = (EditText)findViewById(R.id.edtLuogoN);
			EditText edtProvincia = (EditText)findViewById(R.id.edtProvincia);
			EditText edtEMail = (EditText)findViewById(R.id.edtEMail);
			EditText edtStatoCivile = (EditText)findViewById(R.id.edtStatoCivile);
			EditText edtPassword = (EditText)findViewById(R.id.edtPassword);
			EditText edtRPassword = (EditText)findViewById(R.id.edtRPassword);
			
			MainActivity.utente.nome = edtNome.getText().toString();
			MainActivity.utente.cognome = edtCognome.getText().toString();
			MainActivity.utente.sesso = edtSesso.getText().toString();
			MainActivity.utente.dataN = edtDataN.getText().toString();
			MainActivity.utente.luogoN = edtLuogoN.getText().toString();
			MainActivity.utente.provincia = edtProvincia.getText().toString();
			MainActivity.utente.eMail = edtEMail.getText().toString();
			MainActivity.utente.statoCivile = edtStatoCivile.getText().toString();
			MainActivity.utente.password = (edtPassword.getText().toString());
			MainActivity.utente.nomeUtente = (MainActivity.utente.nome + "." + MainActivity.utente.cognome);
			MainActivity.utente.deviceID = (Utils.getDeviceID(getApplicationContext()));
			
			if(MainActivity.utente.password.length() < 6)
			{
				Utils.showAlert(this, "La password deve avere almeno 6 carattere.", "passLen", "Errore");
				boolPwd = false;
			}
			else
			{
				boolPwd = true;
			}
			
			if(!MainActivity.utente.password.equals(edtRPassword.getText().toString()))
			{
				
				Utils.showAlert(this, "Le password non corrispondono.", "passRep", "Errore");
				boolRPwd = false;
			}
			else
			{
				boolRPwd = true;
			}
			
			if(!Utils.checkDate(MainActivity.utente.dataN))
			{
				
				Utils.showAlert(this, "Data inserita in formato errato.", "data", "Errore");
				boolDate = false;
			}
			else
			{
				EditText p1 = (EditText)findViewById(R.id.edtDataN);
				p1.setText(Utils.formatDate(p1.getText().toString()));
				boolDate = true;
			}
			
			if (boolPwd && boolRPwd && boolDate)
			{
				if (MainActivity.utente.registrazione(this))
				{
					MainActivity.utente.leggiUtente(this);
					miaAlert.setTitle("Registrazione:");
					miaAlert.setMessage("Utente creato con successo.");
					miaAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener()
						{					
							@Override
							public void onClick(DialogInterface dialog, int which)
							{
								Intent i = new Intent(Registrazione.this, Profilo.class);
								i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
								startActivity(i);
								return;
							}
						});
					AlertDialog alert = miaAlert.create();
					alert.show();
				}
				else
				{
					miaAlert.setTitle("Errore:");
					miaAlert.setMessage("Errore nella creazione dell'utente.");
					miaAlert.setPositiveButton("Ok", new DialogInterface.OnClickListener()
						{					
							@Override
							public void onClick(DialogInterface dialog, int which)
							{
								return;
							}
						});
					AlertDialog alert = miaAlert.create();
					alert.show();
				}
			}
		}
	}
}
